package com.ctshk.rpc.ship.constant;

import java.util.Arrays;

/**
 * @Description
 * @Author wansi <gaylen15527491065@yeah.net>
 * @Date 2021/3/24
 */
public enum ProductCenterEnum {

    /**
     * 金额
     */
    AMOUNT(1,0,"金额"),
    /**
     * 百分比
     */
    PERCENT(2,0,"百分比"),
    /**
     * 指定部門/人員
     */
    IS_LIMIT(1,1,"限制售额"),
    /**
     * 指定部門/人員
     */
    IS_NOT_LIMIT(0,1,"无限制"),
    /**
     * 自营渠道
     */
    SEL_CUSTOM_CHANNEL(1,2,"自营渠道"),
    /**
     * 指定部門/人員
     */
    AGENT_CHANNEL(2,2,"代理商"),
    /**
     * 固定天数
     */
    VAILDTYPE_FIX(1,3,"固定天数"),
    /**
     * 固定天数
     */
    VAILDTYPE_SCOPE(2,3,"指定日期区间"),

    /**
     * 是否允许自由行打包:允许
     */
    ALLOWPACKAGE_YES(1,4,"允许"),
    /**
     * 是否允许自由行打包:不允许
     */
    ALLOWPACKAGE_NO(2,4,"不允许"),
    /**
     * 是否允许自由行打包:只限打包
     */
    ONLY_FOR_PACKAGE(3,4,"只限打包"),
    /**
     * 预订确认；立即确认
     */
    BOOKCONFIRM_ONE(1,5,"立即确认"),
    /**
     * 预订确认；二次确认
     */
    BOOKCONFIRM_TWO(2,5,"訂單不能立即確認，需要二次確認"),
    /**
     * 取消政策:限时取消
     */
    CANCELPOLICY(1,6,"限时取消"),
    /**
     * 取消政策:不退不改
     */
    CANCELPOLICY_NO(2,6,"一經預訂，不退不改"),
    /**
     * 立即开售
     */
    STARTSALETIMETYPE_IM(1,7,"立即开售"),
    /**
     * 定时开售
     */
    CANCELPOLICY_SHE(2,7,"定时开售"),

    ;
    /**
     * 自营禁销
     */
    public static final int SEL_CUSTOM_FORBID = 1;
    /**
     * 所有部门
     */
    public static final int ALL_DEPT_SALE = 2;
    /**
     * 指定部門/人員
     */
    public static final int PERSONAL_SALE = 3;
    /**
     * 勾选人
     */
    public static final int PERSONAL_CHOOSE = 2;

    /**
     * 勾选部门
     */
    public static final int DEPT_CHOOSE = 1;

    /**
     * 自營渠道
     */
    public static final int SEL_CUSTOM = 1;
    /**
     * 代理商渠道
     */
    public static final int AGENT_CUSTOM = 2;

    private Integer channelCode;
    private String channelName;
    private Integer itemType;

    ProductCenterEnum(Integer channelCode, Integer itemType, String channelName){
        this.channelCode = channelCode;
        this.channelName = channelName;
        this.itemType = itemType;
    }


    /**
     * 获取key的name
     * @param key
     * @return
     */
    public static String getDataValue(Integer key,Integer itemType){
        ProductCenterEnum[] values = ProductCenterEnum.values();
        ProductCenterEnum productCenterEnum = Arrays.stream(values)
                .filter(value -> value.itemType.equals(itemType) && value.getChannelCode().equals(key))
                .findFirst().orElse(null);
        if(productCenterEnum == null) return "";
        return productCenterEnum.getChannelname();
    }


    public Integer getChannelCode(){
        return this.channelCode;
    }

    public String getChannelname(){
        return this.channelName;
    }
}
